In modern IT systems servers and tape drives are connected via a storage area network (e.g. Fibre Channel SAN, iSCSI SAN). In addition to that, the IEEE 1244 Standard for Removable Media Management defines the architecture and the protocols to share tape drives efficiently across heterogeneous server and application boundaries. To simplify configuration and access control, IEEE 1244 organizes drives in drive groups. Two applications can share IEEE 1244 managed drives, if both applications are authorized to access the drives of a common drive group.
In theory tape management systems like IEEE 1244 allow to share tape drives very flexibly between several applications, but in practice this sharing is limited by bandwidth considerations. Due to bandwidth limitations of the host I/O bus (e.g. PCI bus) and of the I/O ports of the server (e.g. Fibre Channel port, iSCSI port), an I/O port can only utilize a certain number of drives efficiently. If the number of drives utilized by an I/O port is above a certain threshold the performance will suffer.
This number is often referred to as drive limit of an I/O port. Furthermore, in heterogeneous environments different I/O ports may have different drive limits. For instance, a 2 Gbit Fibre Channel port can utilize more drives at full drive speed than a 1 Gbit Fibre Channel port or 1 Gbit iSCSI port. The term drive is not limited to tape drive, it can be any other I/O device such as disk-, optical-, random access memory-, holographic- or nano-technology device.
Prior art uses the following methods and systems to assure that in a drive sharing environment the number of drives which are concurrently used by an I/O port does not exceed its drive limit.
1. Partitioning of resources via software configuration.                A typical approach to not exceed the drive limit of a port is to reduce the number of drives which are visible at the port. Let us say we have two servers each equipped with one I/O port which have a drive limit of n. If the storage administrator knows that both servers need n drives at different times of the day, then he typically zones the same n drives to both servers. This enables the drive sharing between both servers whilst it assures that the respective drive limits are not exceeded.        The drawback of this approach is its lack of flexibility. For instance, manual intervention is required, if one of the drives becomes defunct. The administrator must identify an available spare drive which he can zone to the I/O ports of both servers. Furthermore, he must trigger the operating system of both servers to scan for new hardware before the new drive can be used by the applications. In addition to that the access characteristics of a third server must be well known before it can be integrated in this environment without violating against the resource requirements of the other two servers. Furthermore the configuration must also be adapted if the access characteristics of one of the servers change. Additional measures are required if over the time both servers need the drives at the same time of the day or if over the time the workload of one of the servers can be satisfied with less than one drive. The scenarios lead to SAN zoning changes which are required to improve the aggregated drive utilization of the whole tape infrastructure. Overall this leads to limited flexibility thus this approach does not scale for large environments.        
2. Virtual tape server with disk cache                Another approach is to place a disk cache in the I/O path between the servers and the tapes. In such scenarios a so called virtual tape server presents virtual cartridges in virtual tape drives to the server while the virtual tape server internally redirects the data to a disk cache. Later on the virtual tape server destages data from the disk cache via real drives to real tape cartridges. The drawback of this approach is the need for additional hardware and software to build the virtual tape server.        
3. Virtual tape server without disk cache                In another scenario the virtual tape server exports virtual tape drives to the servers where the number of virtual tape drives which can be used by a server is limited by a parameter in the software configuration. When a server wants to mount a cartridge then the virtual tape server dynamically connects the virtual tape drive to a physical tape drive. In this way a flexible mapping of physical tape drives to server I/O ports can be achieved. The drawback of this approach is the need for additional hardware and software to build the virtual tape server.        
4. Tape drives with multiple ports                Some tape drives are equipped with multiple ports. Additionally multi-pathing software can be used to balance the I/O across all available paths. The drawback of this approach is the need for additional hardware (ports at the tape drive, ports at the storage network to connect the second drive port) and software (such as multi-pathing software). Usually one port is active at the time, the other ports serve redundancy purposes in case there is a problem performing I/O via the active port. Thus, this approach does not scale for large environments.        
There is therefore a need for a method and system which facilitates the dynamical distribution of I/O workload distribution among removable media devices attached via multiple host bus adapters.